package com.drg.center.service;

import com.drg.center.entity.param.*;
import com.drg.center.entity.result.*;
import com.guaike.core.entity.result.PageEntity;
import com.guaike.core.entity.result.Result;

import javax.servlet.http.HttpServletResponse;
import java.util.List;


public interface MedicalSettleService {
    /**
     * 医保结算审核
     * @param param
     * @return
     */
    Result<MedicalSettleVO> medicalSettle(MedicalSettleDTO param);
    /**
     * 医保结算审核列表
     * @param param
     * @return
     */
    Result<PageEntity<MedicalSettlePageVO>> medicalSettlePage(MedicalSettlePageDTO param);
    /**
     * 导出订单excel
     * @param param
     */
    void exportExcel(HttpServletResponse response, MedicalSettlePageDTO param) throws Exception;
    /**
     * 0000组上传
     * @param param
     * @return
     */
    Result<Boolean> noneUpload(NoneUploadDTO param);

    /**
     * 医保结算审核诊断手术对照
     * @param caseCode
     * @return
     */
    Result<MedicalSettleDetailVO> diagnosisAndOperation(String caseCode);

    /**
     * 保存诊断手术
     * @param param
     * @return
     */
    Result<Boolean> diagnosisAndOperationSave(MedicalSettleDetailDTO param);

    /**
     * 分组预测
     * @param param
     * @return
     */
    Result<GroupPredictionVO> groupPrediction(MedicalSettleGroupPredictionDTO param);


    /**
     * DRG结算统计导出excel
     * @param param
     */
    void drgSettleStatExportExcel(HttpServletResponse response,SettleDateDTO param) throws Exception;

    /**
     * 校对结果查询
     * @param param
     * @return
     */
    Result<PageEntity<CaseMonitorOutCheckVO>> checkDrgPage(CaseCheckPageDTO param);

    /**
     * 校对详情
     * @param caseCode
     * @return
     */
    Result<CaseDrgCheckVO> checkDrgDetail(String caseCode);
}
